﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Modelo;
using AccesoDatos;

namespace Negocio
{
    public static class ControladorProductoDiario
    {

        private static string InsertarNuevo(DateTime FechaCompra, string Nombre, float Cantidad, DateTime FechaComida, float precio, string unidad)
        {
            if (BDListaDiaria.InsertarNuevoProducto(FechaCompra, Nombre, Cantidad, FechaComida,precio,unidad))
                return "Se agregó a la lista diaria con éxito";
            else
                return "Error, es posible que este producto ya este en la lista diaria de este dia";
        }
        public static string NuevoProductoDiario(ProductoDiario producto)
        {
           
            if(Validar.ValidarQueNoPaseDelDiaDeLaComida(producto))
            {
                return InsertarNuevo(producto.FechaCompra, producto.Nombre, producto.Cantidad, producto.FechaComida,producto.Precio,producto.Medida);
            }
            else
            {
                return "Este producto requiere ser comprado antes de la fecha solicitada.";
            }
        }
        public static List<ProductoDiario> ObtenerProductosFecha(DateTime fecha)
        {
            return BDListaDiaria.ObtenerProducto(fecha);
        }
        public static bool BorrarProductosEnFecha(DateTime fecha)
        {
            if (BDListaDiaria.BorrarProductosEnFecha(fecha))
                return true;
            return false;
        }
        public static bool BorrarProductosAnterioresAHoy()
        {
            DateTime fecha = new DateTime();
            fecha = DateTime.Now.Date;
            while (ControladorFecha.dayOfWeekLarge(fecha) != "sábado")
            {
                BorrarProductosEnFecha(fecha);
                fecha = fecha.AddDays(-1);
            }
            return true;
        }
        public static List<ProductoDiario> ObtenerProductosHastaDomingo(DateTime fecha)
        { 
            DateTime fechaID = fecha;
            List<ProductoDiario> productosDiarios = new List<ProductoDiario>();
            List<ProductoDiario> productosTodos = new List<ProductoDiario>();
            do
            {
                productosDiarios = ObtenerProductosFecha(fechaID);
                fechaID=fechaID.AddDays(1);
                if (productosDiarios != null)
                {
                    foreach (ProductoDiario productoUnico in productosDiarios)
                    {
                        productosTodos.Add(productoUnico);
                    }
                }
            } while (ControladorFecha.dayOfWeekLarge(fechaID) != "domingo");
            return productosTodos;
        }
    }
}
